package newx.com.control
{
	import flash.text.TextFormat;

	/**
	 * 文本输入控件，继承sprite的事件和部分文本事件：
	 * change 
	 * @author wangjun
	 * 
	 */	
	public interface ITextInput extends IControl
	{		
		/**
		 * 文本背景皮肤，参数为资源绑定类类名。
		 * */
		function get skin():String;
		function set skin(val:String):void;
		
		/**
		 * 输入框背景宽度（如果有）。
		 * */
		function get skinWidth():uint;
		function set skinWidth(val:uint):void;
		
		/**
		 * 输入框背景高度（如果有）。
		 * */
		function get skinHeight():uint;
		function set skinHeight(val:uint):void;
		
		/**
		 * 指定是否应删除包含 HTML 文本的 TextInput 控件中的额外空白（空格、换行符等）。
		 * */
		function get condenseWhite():Boolean;
		function set condenseWhite(val:Boolean):void;
		
		/**
		 * 一个布尔值，指示字段是否为多行文本字段。
		 * */
		function get multiline():Boolean;
		function set multiline(val:Boolean):void;
			
		/**
		 * 一个布尔值，指示文本字段是否自动换行。
		 * */
		function get wordWrap():Boolean;
		function set wordWrap(val:Boolean):void;
		
		/**
		 * 一个布尔值，是否根据文本大小缩放背景皮肤（如果有）
		 * */
		function get autoSkinScale():Boolean;
		function set autoSkinScale(val:Boolean):void;
		
		/**
		 * 一个布尔值，指示此控件是否用于输入密码。
		 * */
		function get displayAsPassword():Boolean;
		function set displayAsPassword(val:Boolean):void;
		
		/**
		 * 一个布尔值，指示用户是否可以编辑此控件中的文本。
		 * */
		function get editable():Boolean;
		function set editable(val:Boolean):void;
		
		/**
		 * 指定 TextInput 控件显示的文本，包括用于表示文本样式的 HTML 标记。
		 * */
		function get htmlText():String;
		function set htmlText(val:String):void;
		
		/**
		 * 控件中出现的纯文本。
		 * */
		function get text():String;
		function set text(val:String):void;
		
		/**
		 * 指示用户可以输入到控件的字符集。
		 * */
		function get restrict():String;
		function set restrict(val:String):void;
		
		/**
		 * 文本相对皮肤沿x方向的偏移量。
		 * */
		function get offsizeX():int;
		function set offsizeX(val:int):void;
		
		/**
		 * 文本相对皮肤沿y方向的偏移量。
		 * */
		function get offsizeY():int;
		function set offsizeY(val:int):void;
		
		/**
		 * 用户可以在文本字段中输入的最大字符数。
		 * */
		function get maxChars():int;
		function set maxChars(val:int):void;
		
		/**
		 * 包含当前与显示对象关联的每个滤镜对象的索引数组。
		 * */
		function get filters():Array;
		function set filters(arr:Array):void;
		
		
		/**
		 * 设置文本获取焦点
		 * @return 
		 * 
		 */
//		function focused():void
		
		
		/**
		 * 文本的字符数。
		 * */
		function get length():int;
		
		/**
		 * 文本字段中的字符所占的字节数。
		 * */
		function get strByteSize():int;

		/**
		 * 返回 TextFormat 对象，其中包含 beginIndex 和 endIndex
		 * 参数指定的文本范围的格式信息。
		 * @param beginIndex	:文本开始索引。（可选）
		 * @param endIndex		:文本结束索引。（可选）
		 * @return 
		 * 
		 */
		function getTextFormat(beginIndex:int = -1, endIndex:int = -1):TextFormat;
		
		/**
		 * 将 format 参数指定的文本格式应用于文本字段中的指定文本。
		 * @param format
		 * @param beginIndex	:文本开始索引。（可选）
		 * @param endIndex		:文本结束索引。（可选）
		 * 
		 */		
		function setTextFormat(format:TextFormat, beginIndex:int = -1, endIndex:int = -1):void
	}
}